package domain.simplex;

//import java.util.ArrayList;
import java.util.HashSet;
//import java.util.List;

import entities.concept.DomainConcept;
import entities.concept.DomainConceptLT;
import entities.concept.DomainConceptLTEQ;
import entities.role.Role;

//import utils.exception.SimplexException;
//import utils.exception.SimplexInfeasibleException;

public class TestSimplex {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// List<Integer> nbv = new ArrayList<Integer>();
		// nbv.add(1);
		// nbv.add(2);
		// nbv.add(3);
		// List<Integer> bv = new ArrayList<Integer>();
		// bv.add(4);
		// bv.add(5);
		// bv.add(6);
		// double v = 0;
		// double aij[][] = new double[7][7];
		// aij[4][1] =1; aij[4][2]=1; aij[4][3]=3;
		// aij[5][1] = 2; aij[5][2] =2; aij[5][3]=5;
		// aij[6][1]=4; aij[6][2]=1; aij[6][3]=2;
		// double c[] = {0,3, 1, 2,0,0,0};
		// double b[]= {0,0,0,0,30, 24, 36};
		// SimplexSlackForm sf = new SimplexSlackForm(nbv, bv, aij, b, c, v);
		// Simplex.simplexLoop(sf);
		// example 2
		// List<Integer> nbv = new ArrayList<Integer>();
		// nbv.add(1);
		// nbv.add(2);
		// List<Integer> bv = new ArrayList<Integer>();
		// bv.add(3);
		// bv.add(4);
		// double v = 0;
		// int size = bv.size()+nbv.size()+1;
		// double aij[][] = new double[size][size];
		// aij[3][1] = 2; aij[3][2]= -1;
		// aij[4][1] = 1; aij[4][2] = -5;
		// double c[] = {0, 2, -1, 0, 0};
		// double b[]= {0, 0, 0, 2, -4};
		// SimplexSlackForm sf = new SimplexSlackForm(nbv, bv, aij, b, c, v);
		// try {
		// Simplex.findSolution(sf);
		// } catch (SimplexInfeasibleException e) {
		// e.printStackTrace();
		// } catch (SimplexException e) {
		// e.printStackTrace();
		// }
		Role f = Role.createRoleAsIs("f");
		Role g = Role.createRoleAsIs("g");
		Role h = Role.createRoleAsIs("h");
		DomainConceptLT<Role, String> d1 = new DomainConceptLT<Role, String>(f,
				"5");
		DomainConceptLT<Role, Role> d2 = new DomainConceptLT<Role, Role>(h, f);
		DomainConceptLT<Role, Role> d3 = new DomainConceptLT<Role, Role>(g, h);
		DomainConceptLTEQ<String, Role> d4 = new DomainConceptLTEQ<String, Role>(
				"3", g);
		HashSet<DomainConcept<?, ?>> dcs = new HashSet<DomainConcept<?, ?>>();
		dcs.add(d1);
		dcs.add(d2);
		dcs.add(d3);
		dcs.add(d4);
		boolean res = new SimplexStandardForm().translateDomainConcept(dcs);
		if (res) {
			System.err.println("Sat!");
		} else {
			System.err.println("Unsat!");
		}
	}

}
